﻿//-------------------------------------------------------------------------------------------------
// <copyright file="comboBoxContents.cs" company="Anthony Adam">
// Copyright (c) Anthony Adam 2012. All rights reserved.
// </copyright>
//-------------------------------------------------------------------------------------------------
// ReSharper disable once CheckNamespace
namespace SuperStarRounds
{
  using System.Windows.Forms;

  /// <summary>
  /// Class providing a collection of default choices for application combo boxes
  /// </summary>
  public static class ComboBoxContents
  {
    /// <summary>
    /// Base values for Spell School combo boxes.
    /// </summary>
    /// <param name="comboBox">The combo box control to be initialised with the values</param>
    public static void FillWithSpellSchoolChoices(ComboBox comboBox)
    {
      comboBox.Items.Clear();
      comboBox.Items.Add("abjuration");
      comboBox.Items.Add("conjuration");
      comboBox.Items.Add("divination");
      comboBox.Items.Add("enchantment");
      comboBox.Items.Add("evocation");
      comboBox.Items.Add("illusion");
      comboBox.Items.Add("necromancy");
      comboBox.Items.Add("transmutation");
      comboBox.Items.Add("universal");
    }

    /// <summary>
    /// Base values for Creation Feats combo boxes.
    /// </summary>
    /// <param name="comboBox">The combo box control to be initialised with the values</param>
    public static void FillWithCreationFeatChoices(ComboBox comboBox)
    {
      comboBox.Items.Clear();
      comboBox.Items.Add("Brew Potion");
      comboBox.Items.Add("Craft Magic Arms and Armor");
      comboBox.Items.Add("Craft Rod");
      comboBox.Items.Add("Craft Staff");
      comboBox.Items.Add("Craft Wondrous Item");
      comboBox.Items.Add("Forge Ring");
      comboBox.Items.Add("Scribe Scroll");
      comboBox.Items.Add("Empower Spell");
      comboBox.Items.Add("Enlarge Spell");
      comboBox.Items.Add("Extend Spell");
      comboBox.Items.Add("Heighten Spell");
      comboBox.Items.Add("Maximize Spell");
      comboBox.Items.Add("Quicken Spell");
      comboBox.Items.Add("Silent Spell");
      comboBox.Items.Add("Still Spell");
      comboBox.Items.Add("Widen Spell");
    }

    /// <summary>
    /// Base values for Weight post fixes combo boxes.
    /// </summary>
    /// <param name="comboBox">The combo box control to be initialised with the values</param>
    public static void FillWithWeightPostFixChoices(ComboBox comboBox)
    {
      comboBox.Items.Clear();
      comboBox.Items.Add("lb.");
      comboBox.Items.Add("lbs.");
    }

    /// <summary>
    /// Base values for Slot Choice combo boxes.
    /// </summary>
    /// <param name="comboBox">The combo box control to be initialised with the values</param>
    public static void FillWithSlotChoices(AutoCompleteComboBox comboBox)
    {
      comboBox.Items.Clear();
      comboBox.Items.Add("none");
      comboBox.Items.Add("belt");
      comboBox.Items.Add("body");
      comboBox.Items.Add("chest");
      comboBox.Items.Add("eyes");
      comboBox.Items.Add("feet");
      comboBox.Items.Add("hands");
      comboBox.Items.Add("head");
      comboBox.Items.Add("headband");
      comboBox.Items.Add("neck");
      comboBox.Items.Add("shoulders");
      comboBox.Items.Add("wrists");
    }

    /// <summary>
    /// Base values for Caster Level Selection combo boxes.
    /// </summary>
    /// <param name="comboBox">The combo box control to be initialised with the values</param>
    public static void FillWithCasterLevelChoices(ComboBox comboBox)
    {
      comboBox.Items.Clear();
      comboBox.Items.Add("1st");
      comboBox.Items.Add("2nd");
      comboBox.Items.Add("3rd");
      comboBox.Items.Add("4th");
      comboBox.Items.Add("5th");
      comboBox.Items.Add("6th");
      comboBox.Items.Add("7th");
      comboBox.Items.Add("8th");
      comboBox.Items.Add("9th");
      comboBox.Items.Add("10th");
      comboBox.Items.Add("11th");
      comboBox.Items.Add("12th");
      comboBox.Items.Add("13th");
      comboBox.Items.Add("14th");
      comboBox.Items.Add("15th");
      comboBox.Items.Add("16th");
      comboBox.Items.Add("17th");
      comboBox.Items.Add("18th");
      comboBox.Items.Add("19th");
      comboBox.Items.Add("20th");
    }

    /// <summary>
    /// Base values for Price post fix combo boxes.
    /// </summary>
    /// <param name="comboBox">The combo box control to be initialised with the values</param>
    public static void FillWithPricePostFixChoices(ComboBox comboBox)
    {
      comboBox.Items.Clear();
      comboBox.Items.Add("(+1)");
      comboBox.Items.Add("(+2)");
      comboBox.Items.Add("(+3)");
      comboBox.Items.Add("(+4)");
      comboBox.Items.Add("(+5)");
      comboBox.Items.Add("(+6)");
      comboBox.Items.Add("(+7)");
      comboBox.Items.Add("(+8)");
      comboBox.Items.Add("(1st)");
      comboBox.Items.Add("(2nd)");
      comboBox.Items.Add("(3rd)");
      comboBox.Items.Add("(4th)");
      comboBox.Items.Add("(5th)");
      comboBox.Items.Add("(6th)");
      comboBox.Items.Add("(7th)");
      comboBox.Items.Add("(8th)");
      comboBox.Items.Add("(9th)");
      comboBox.Items.Add("(greater)");
      comboBox.Items.Add("(lesser)");
      comboBox.Items.Add("(type I)");
      comboBox.Items.Add("(type II)");
      comboBox.Items.Add("(type III)");
      comboBox.Items.Add("(type IV)");
      comboBox.Items.Add("(type V)");
      comboBox.Items.Add("(type VI)");
      comboBox.Items.Add("(type VII)");
      comboBox.Items.Add("(type VIII)");
      comboBox.Items.Add("(type IX)");
      comboBox.Items.Add("(type X)");
    }

    /// <summary>
    /// Base values for Ranking Type combo boxes.
    /// </summary>
    /// <param name="comboBox">The combo box control to be initialised with the values</param>
    /// <param name="maxRanks">The maximum ranks to add to the combo control</param>
    public static void FillWithRankChoices(ComboBox comboBox, int maxRanks)
    {
      comboBox.Items.Clear();
      for (var i = 0; i < maxRanks; )
      {
        comboBox.Items.Add(++i);
      }
    }
  }
}
